﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.trde
    三对角线方程组的追赶法
    参数 b: b[m]以行为主存放三对角阵中三条对角线上的元素。
    参数 n: 方程组阶数。
    参数 m: 三对角阵3条对角线的元素个数。m = 3n - 2。
    参数 d: d[n]存放方程组右端的常数向量。返回方程组的解向量。
    返回值 若<0则表示m的值不对；若=0则表示失败；若>0则表示正常。
    */

    public static string drive_trde()
    {
        int i;
        double[] b = new double[13] {
            13.0,12.0,11.0,10.0,9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0,1.0
        };
        double[] d = new double[5]{
            3.0,0.0,-2.0,6.0,8.0
        };

        string rs = "";
        rs += gl.html_table("Mat B:", b);
        rs += gl.html_table("Mat D:", d);

        i = gl.trde(b, 5, 13, d);
        if (i == 0) return "error: 0";

        rs += gl.html_table("Mat D:", d);
        return rs;
    }
}